/*
 * 文件名：CarInLockManager.java	 
 * 时     间：下午9:14:04
 * 作     者：lyf      
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.local.manager.locks;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import com.cz073586.tools.util.Tools;

/**
 * 类描述: 进场锁,保证先插入进场纪录后在做其他操作,如:通过recoid更新图片. [map]: key:rcId,int
 * 1表示进场数据正在插入、2表示插入完毕
 * 
 * 
 * @ClassName: CarInLockManager
 * @author lyf
 * @date 2016年4月1日 下午9:14:04
 */
public class RecordLockManager
{
	private static RecordLockManager instance;
	private Map<String, Integer> recordMap = new ConcurrentHashMap<String, Integer>();
	
	private RecordLockManager()
	{
		
	}
	
	public static RecordLockManager instance()
	{
		if (null == instance)
		{
			instance = new RecordLockManager();
		}
		return instance;
	}
	
	/**
	 * 
	 * 方法描述： 加锁，标记数据正在写入
	 * 
	 * @Title: lock
	 * @param @param recordId
	 * @return void
	 * @user lyf 2016年4月1日
	 * @throws
	 */
	public void lock(String recordId)
	{
		recordMap.put(recordId, 1);
	}
	
	/**
	 * 
	 * 方法描述： 移除锁
	 * 
	 * @Title: removeLock
	 * @param @param recordId
	 * @return void
	 * @user lyf 2016年4月1日
	 * @throws
	 */
	public void removeLock(String recordId)
	{
		recordMap.remove(recordId);
	}
	
	/**
	 * 
	 * 方法描述：是否已经锁定，锁定 true
	 * 
	 * @Title: isLocked
	 * @param @param recordId
	 * @param @return
	 * @return boolean
	 * @user lyf 2016年4月1日
	 * @throws
	 */
	public boolean isLocked(String recordId)
	{
		Integer stuts = recordMap.get(recordId);
		if (Tools.isEmpty(stuts))
		{
			return false;
		}
		
		if (!Tools.isEmpty(stuts) && stuts == 1)
		{
			return true;
		}
		
		return false;
	}
	
}
